Method and apparatus for transmitting and receiving packet in a communication system

ABSTRACT

A method for transmitting a packet in a communication system is provided. The method includes dividing a data stream into data payloads of a predetermined size and adding a common header to each of the data payloads, to generate a source payload, adding a first Forward Error Correction (FEC) payload Identifier (ID) to the source payload and applying an FEC code thereto, to generate an FEC source packet for a source payload, adding a second FEC payload ID to at least one parity payload and applying an FEC code thereto, to generate an FEC parity packet for the at least one parity payload, and transmitting the FEC source packet and the FEC parity packet.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation application of a prior applicationSer. No. 13/873,739, filed on Apr. 30, 2013, which claimed the benefitunder 35 U.S.C. §119(a) of a Korean patent application filed on Apr. 30,2012 in the Korean Intellectual Property Office and assigned Serialnumber 10-2012-0045337, of a Korean patent application filed on Sep. 11,2012 in the Korean Intellectual Property Office and assigned Serialnumber 10-2012-0100528, and of a Korean patent application filed on Apr.23, 2013 in the Korean Intellectual Property Office and assigned Serialnumber 10-2013-0045082, the entire disclosure of each of which is herebyincorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a communication system. Moreparticularly, the present invention relates to a method and apparatusfor transmitting and receiving packets in a communication system.

2. Description of the Related Art

Due to diversification of content and an increase in high-capacitycontent, such as High Definition (HD) content and Ultra High Definition(UHD) content, communication systems may suffer from increasing datacongestion. Because of this, the content sent by a sender, for example,a host A, may not be normally delivered to a receiver, for example, ahost B, and some of the content may be lost in its route.

Generally, since data is transmitted in packets, the loss of contentoccurs on a packet basis. The packet is comprised of one block, forexample, a payload of data to be transmitted, address information, forexample, a source address and a destination address, and managementinformation, for example, a header. Therefore, if a packet loss occursin the network, a receiver may not know the data and managementinformation in the lost packet since it cannot receive the lost packet,thereby causing the user inconvenience in various forms such as qualitydegradation of audio, quality degradation and image breakage of video,subtitle missing, file loss, and the like.

For these reasons, Application Layer-Forward Error Correction (AL-FEC)is used as a way to recover the data loss which has occurred in thenetwork, and there is a need for a way to configure an FEC packet forAL-FEC and transmit and receive the FEC packet.

The above information is presented as background information only toassist with an understanding of the present disclosure. No determinationhas been made, and no assertion is made, as to whether any of the abovemight be applicable as prior art with regard to the present invention.

SUMMARY OF THE INVENTION

Aspects of the present invention are to address at least theabove-mentioned problems and/or disadvantages and to provide at leastthe advantages described below. Accordingly, an aspect of the presentinvention is to provide a method and apparatus for configuring a ForwardError Correction (FEC) packet for Application Layer-Forward ErrorCorrection (AL-FEC) operation and transmitting and receiving the FECpacket, to improve the reliability of the network by transmitting aparity packet that is generated using one or more error-correcting codestogether with a data packet in a communication system supporting apacket-based communication scheme.

In accordance with an aspect of the present invention, a method fortransmitting a packet in a communication system is provided. The methodincludes generating a source payload by dividing a data stream into datapayloads of a predetermined size and adding a common header to each ofthe data payloads, generating an FEC source packet for the sourcepayload by adding a first FEC payload Identifier (ID) to the sourcepayload and applying an FEC code to the source payload, generating anFEC parity packet for at least one parity payload by adding a second FECpayload ID to the at least one parity payload and applying an FEC codeto the at least one parity payload, and transmitting the FEC sourcepacket and the FEC parity packet.

In accordance with another aspect of the present invention, an apparatusfor transmitting a packet in a communication system is provided. Theapparatus includes a source payload generator generating a sourcepayload by dividing a data stream into data payloads of a predeterminedsize and adding a common header to each of the data payloads, acontroller generating a FEC source packet by adding a first FEC payloadID to the source payload and applying an FEC code to the source payload,and generating an FEC parity packet for at least one parity payload byadding a second FEC payload ID to at least one parity payload andapplying an FEC code to the at least one parity payload, and atransmitter for transmitting the FEC source packet and the FEC paritypacket.

In accordance with further another aspect of the present invention,method for receiving a packet in a communication system is provided. Themethod includes determining whether a packet received from a sender is aForward Error Correction (FEC) source packet and an FEC parity packet,and acquiring a source payload from the FEC source packet, and acquiringa parity payload from the FEC parity packet, wherein the source payloadmay be generated by dividing a data stream into data payloads of apredetermined size and adding a common header to each of the datapayloads, wherein the FEC source packet may be generated by adding afirst FEC payload Identifier (ID) to the source payload and applying anFEC code to the source payload, and wherein the FEC parity packet may begenerated by adding a second FEC payload ID to the parity payload andapplying an FEC code to the parity payload.

In accordance with yet another aspect of the present invention, anapparatus for receiving a packet in a communication system is provided.The apparatus includes a controller determining whether a packetreceived from a sender is a Forward Error Correction (FEC) source packetand an FEC parity packet, acquiring a source payload from the FEC sourcepacket, and acquiring a parity payload from the FEC parity packet,wherein the source payload may be generated by dividing a data streaminto data payloads of a predetermined size and adding a common header toeach of the data payloads, wherein the FEC source packet may begenerated by adding a first FEC payload Identifier (ID) to the sourcepayload and applying an FEC code to the source payload, and wherein theFEC parity packet may be generated by adding a second FEC payload ID tothe parity payload and applying an FEC code to the parity payload.

Other aspects, advantages, and salient features of the invention willbecome apparent to those skilled in the art from the following detaileddescription, which, taken in conjunction with the annexed drawings,discloses exemplary embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects, features and advantages of certainexemplary embodiments of the present invention will be more apparentfrom the following description taken in conjunction with theaccompanying drawings, in which:

FIGS. 1A and 1B illustrate a network topology and a data flow accordingto an exemplary embodiment of the present invention;

FIG. 2 illustrates a configuration of an Motion Pictures Expert Group(MPEG) Media Transport (MMT) system according to an exemplary embodimentof the present invention;

FIG. 3 illustrates a structure of an MMT package according to anexemplary embodiment of the present invention;

FIG. 4 illustrates a structure of configuration information included inan MMT package and its sub information according to an exemplaryembodiment of the present invention;

FIG. 5 illustrates a structure of a Forward Error Correction (FEC)packet format according to an exemplary embodiment of the presentinvention;

FIG. 6 illustrates a structure of an FEC packet format in which a sourcepayload is an MMT transport packet, according to an exemplary embodimentof the present invention;

FIG. 7 illustrates a structure of an FEC packet format in which a sourcepayload is an MMT payload format, according to an exemplary embodimentof the present invention;

FIG. 8 is a block diagram illustrating a structure of a transmittingapparatus according to an exemplary embodiment of the present invention;

FIG. 9 is a block diagram illustrating a structure of a receivingapparatus according to an exemplary embodiment of the present invention;

FIG. 10 illustrates an operation of configuring an information blockaccording to an exemplary embodiment of the present invention;

FIG. 11 illustrates an operation of configuring an information blockaccording to another exemplary embodiment of the present invention;

FIG. 12 illustrates a process of mapping an information symbol in aninformation block when a Reed-Solomon (RS) code is used according to anexemplary embodiment of the present invention;

FIG. 13 illustrates a process of mapping an information symbol in aninformation block when a Low Density Parity Check (LDPC) code is usedaccording to an exemplary embodiment of the present invention;

FIG. 14 illustrates a structure of an RS frame according to an exemplaryembodiment of the present invention;

FIG. 15 illustrates a structure of an LDPC frame according to anexemplary embodiment of the present invention;

FIG. 16 illustrates parity block mapping for RS parity symbols accordingto an exemplary embodiment of the present invention;

FIG. 17 illustrates parity block mapping for LDPC parity symbolsaccording to an exemplary embodiment of the present invention; and

FIG. 18 illustrates a structure of an H matrix according to an exemplaryembodiment of the present invention.

Throughout the drawings, like reference numerals will be understood torefer to like parts, components, and structures.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The following description with reference to the accompanying drawings isprovided to assist in a comprehensive understanding of exemplaryembodiments of the invention as defined by the claims and theirequivalents. It includes various specific details to assist in thatunderstanding but these are to be regarded as merely exemplary.Accordingly, those of ordinary skilled in the art will recognize thatvarious changes and modifications of the embodiments described hereincan be made without departing from the scope and spirit of theinvention. In addition, descriptions of well-known functions andconstructions may be omitted for clarity and conciseness.

The terms and words used in the following description and claims are notlimited to the bibliographical meanings, but, are merely used by theinventor to enable a clear and consistent understanding of theinvention. Accordingly, it should be apparent to those skilled in theart that the following description of exemplary embodiments of thepresent invention is provided for illustration purpose only and not forthe purpose of limiting the invention as defined by the appended claimsand their equivalents.

It is to be understood that the singular forms “a,” “an,” and “the”include plural referents unless the context clearly dictates otherwise.Thus, for example, reference to “a component surface” includes referenceto one or more of such surfaces.

First, the terms to be used herein will be defined as follows:

-   -   Forward Error Correction (FEC) Code: an error-correcting code        for correcting an error or an erasure symbol;    -   FEC Frame: a codeword, which is generated by FEC-encoding the        data to be protected, and is comprised of an information part        and a parity part or repair part;    -   Symbol: a unit of data processed by the FEC code;    -   Information Symbols: unprotected data or padding symbols which        is the information part of an FEC frame;    -   Codeword: an FEC frame generated by FEC-encoding information        symbols;    -   Parity Symbols: parity symbols of an FEC frame generated by        FEC-encoding an information symbols;    -   Packet: a transmission unit comprised of a header and a payload;    -   Payload: a piece of user data which is to be transmitted by the        sender and which is placed inside a packet;    -   Packet Header: a header for a packet including a payload;    -   Source Payload: a payload comprised of source symbols;    -   Information Payload: a payload comprised of information symbols;    -   Parity Payload: a payload comprised of parity symbols;    -   Source Block: a set of payloads each comprised of one or more        source payloads;    -   Information Block: a set of payloads each comprised of one or        more information payloads;    -   Parity Block: a set of payloads each comprised of one or more        parity payloads;    -   FEC Block: a set of codewords, or a set of payloads each        comprised of an information block and a parity block;    -   FEC Delivery Block: a set of payloads each comprised of a source        block and a parity block;    -   FEC Packet: a packet for carrying an FEC block;    -   Source Packet: a packet for carrying a source block;    -   Repair Packet: a packet for carrying a repair block;    -   FEC Packet Block: a set of packets for carrying an FEC delivery        block;    -   Motion Pictures Expert Group (MPEG) Media Transport (MPEG) Media        Transport (MMT): an international standard established to        efficiently transmit MPEG data;    -   Source Flow: a Source Flow is a sequence of Source Payloads        identified by the same Source Flow identifier to deliver one or        more MMT Assets from one MMT Server to one or more MMT Clients;    -   Parity Flow: a Parity Flow is a sequence of Parity Payloads,        which are generated by FEC encoding to protect a Source Flow,        identified by the same Parity Flow identifier;    -   FEC Flow: an FEC Flow consists of a Source Flow and its        associated one or more Parity Flows;    -   FEC Payload Identifier (ID): information that identifies the        Information Payloads or sub-Payloads carried by an FEC Source        Packet or the Parity Payloads carried by an FEC Parity Packet;    -   FEC Source Payload ID: FEC Payload ID for Source Packet;    -   FEC Parity Payload ID: FEC Payload ID for Parity Packet;    -   Access Unit (AU): an access unit is the smallest data entity to        which timing information can be attributed, for non-timed data,        whose timing information is not associated, the AU is not        defined;    -   Media Fragment Unit (MFU): is a generic container, independent        of any specific media codec, containing coded media data that is        independently consumable by a media decoder, and is equal to or        smaller than an AU and contains information that can be utilized        by delivery layers;    -   MMT Processing Unit: is a generic container, independent of any        specific media codec, containing one or more AUs and additional        delivery and consumption related information, wherein for        non-timed data, the MPU contains portion of data without an AU        boundaries identified, and it defines coded media data unit that        can be completely and independently processed in MMT, and in        this context processing means encapsulation into MMT Package or        packetization for delivery;    -   MMT Asset: is a logical data entity that is composed of one or        more MPUs, and is the largest data unit for which same        composition information and transport characteristics are        applied, and an MMT Asset contains only one kind of data type        including packaged or multiplexed data, e.g. a portion of audio        ES, a portion of video ES, an MPEG-U Widget Package, a portion        of MPEG-2 TS, a portion of MP4 file, and a portion of MMT        Package;    -   MMT Composition Information (MMT-CI): is description about        spatial and temporal composition of MMT Assets;    -   MMT Media Characteristics for Transmission (MMT-MCT): is        description about required Quality of Service (QoS) for delivery        of MMT Assets. MMT-MCT is represented by the parameters agnostic        to specific delivery environment;    -   MMT Package: is a logically structured collection of data, which        is composed of one or more MMT Assets, MMT-CI and MMT-MCT, and        may also have assigned descriptive information such as an        identifier;    -   MMT Payload Format (MMT-PF): is a format of payload for MMT        Package or MMT signaling message to be carried by MMT Protocol        or Internet application layer protocols, e.g. Real Time Protocol        (RTP); and    -   MMT Transport Packet (MMTP): is an application layer protocol        for delivering MMT-PF over an Internet Protocol (IP) network.

The terms ‘parity’ and ‘repair’ as used herein have the same meanings,so they are interchangeable with each other.

FIGS. 1A and 1B illustrate a network topology and a data flow accordingto an exemplary embodiment of the present invention.

Referring to FIG. 1A, a network topology includes a host A 102 operatingas a sender, and a host B 108 operating as a receiver. The host A 102 isconnected to the host B 108 via one or more routers 104 and 106. Thehost A 102 and the host B 108 are connected to the routers 104 and 106via Ethernets 118 and 122, and the routers 104 and 106 may be connectedto each other via a fiber, satellite communication or other possiblephysical network, such as Ethernet 120. Data flow between the host A 102and the host B 108 is achieved by a link layer 116, an Internet layer114, a transport layer 112 and an application layer 110.

Referring to FIG. 1B, the application layer 110 generates data 130 to betransmitted, by Application Layer-FEC (AL-FEC). The data 130 may be RealTime Protocol (RTP) packet data generated by dividing the data that iscompressed in an Audio/Video (AV) codec, using an RTP protocol, or maybe MMT packet data generated in accordance with MMT. The data 130 isconverted by the transport layer 112 into a User Datagram Protocol (UDP)packet 132 into which, for example, a UDP header is inserted. TheInternet layer 114 generates an IP packet 134 by attaching an IP headerto the UDP packet 132. The link layer 116 configures a frame 136 to betransmitted, by attaching a frame header and, if necessary, a framefooter to the IP packet 134.

FIG. 2 illustrates a configuration of an MMT system according to anexemplary embodiment of the present invention.

Referring to FIG. 2, a configuration of an MMT system is illustrated onthe left, and the detailed structure of a delivery function isillustrated on the right. A media coding layer 205 compresses audioand/or video data, and delivers it to an encapsulation function layer210, which may also be referred to as an E. Layer 210. The encapsulationfunction layer 210 packetizes or encapsulates the compressed audio/videodata in a form similar to a file format, and delivers it to a deliveryfunction layer 220, which may also be referred to as a D. Layer.

The delivery function layer 220 formats an output of the encapsulationfunction layer 210 into an MMT payload, adds an MMT transport packetheader thereto, and delivers it to a transport protocol layer 230 in theform of an MMT transport packet. Alternatively, the delivery functionlayer 220 delivers an output of the encapsulation function layer 210 tothe transport protocol layer 230 in the form of an RTP packet using theexisting RTP protocol. Thereafter, the transport protocol layer 230converts the input RTP packet into any one of a UDP packet and aTransmission Control Protocol (TCP) packet, and transfers it to an IPlayer 240. Finally, the IP layer 240 converts an output of the transportprotocol layer 230 into an IP packet, and transmits it using an IPprotocol.

An FEC packet according to the present exemplary embodiments isavailable in the form of at least one of an MMT payload format, an MMTtransport packet, and an RTP packet. A control function layer 200, whichmay also be referred to as a C. Layer 200, manages a presentationsession and a delivery session.

FIG. 3 illustrates a structure of an MMT package according to anexemplary embodiment of the present invention.

Referring to FIG. 3, an MMT package 310 is transmitted and receivedto/from a client 350 via delivery function layers 330-1 and 330-2 of thenetwork, and includes MMT assets 303-1 to 303-3, composition information301, and transport characteristics 305-1 and 305-2. The MMT package 310may utilize configuration information. The configuration information iscomprised of a list of the MMT assets 303-1 to 303-3, the compositioninformation 301, and the transport characteristics 305-1 and 305-2.

Description information describes the MMT package 310 and the MMT assets303-1 to 303-3. The composition information 301 assists in consumptionof the MMT assets 303-1 to 303-3. The transport characteristics 305-1and 305-2 provide information for delivery of the MMT assets 303-1 to303-3. The MMT package 310 describes transport characteristics of eachMMT asset separately. The transport characteristics 305-1 and 305-2include error resiliency information, and simple transportcharacteristic information for one MMT asset that may or may not belost. The transport characteristics 305-1 and 305-2 may include Qualityof Service (QoS) information and allowable loss and allowable delayinformation of each MMT asset.

FIG. 4 illustrates a structure of configuration information included inan MMT package and its sub information according to an exemplaryembodiment of the present invention.

As illustrated in FIG. 4, configuration information 310 includes packageidentification information 312, asset list information 314, which is acomponent of the package, composition information 316, transportcharacteristics 318, and additional information together with content,and provides structural information indicating how and where thesecomponents are included in the package.

FIG. 5 illustrates a structure of an FEC packet format according to anexemplary embodiment of the present invention.

An FEC source packet 510, which is an FEC packet for a source payload520 that includes a common header 522, an optional header 524, and data528, is comprised of a common header 512, an optional header 514, an FECpayload ID 516 for the source payload 520, and data 518. The FEC sourcepacket 510 is generated by adding the FEC payload ID 516 for the sourcepayload 520 to the source payload 520 comprised of the common header512, the optional header 514 and the data 518.

An FEC parity packet 530, which is an FEC packet for a parity payload540, is comprised of a common header 532, an FEC payload ID 536 for aparity payload, and a parity payload 538. The FEC parity packet 530 isgenerated by adding the common header 532 and the FEC payload ID 536 fora parity payload to the parity payload 538 generated by FEC encoding.

Although it is assumed in FIG. 5 that the FEC payload ID 516 is placedin front of the data 518 or the parity payload 538, the presentinvention is not limited thereto, and the FEC payload ID 516 may beplaced at the rear of the data 518 or the parity payload 538 or at anysimilar and/or suitable location.

It is preferable that a common header, which may be the common header512 or the common header 532 or any other common header such as commonheader 522, is placed in the same position within the FEC packet. Thecommon header, which may be the common header 512, 522, or 532, includesa Type information field to make it possible to easily determine whetheran FEC packet received at an FEC packet receiver is an FEC source packetor an FEC parity packet. In addition, the common header, which may bethe common header 512, 522, or 532, may include an information fieldindicating whether FEC is applied. In some cases, the information fieldindicating whether FEC is applied is stored in, and carried by, aseparate packet for delivering control information, which is differentfrom the FEC packet. Data of the FEC source packet may have several datatypes, which may include, for example, audio data, video data, filedata, timed data, non-timed data, MPU, MFU and the like. The severaldata types may be distinguished by a value of a Type filed of the commonheader, which may be the common header 512, 522, or 532. Particularly,in the case of the FEC parity packet 530, the parity packet may bedistinguished from the source packet by setting a value of the Typefield of the common header 532 as information indicating parity.However, if there are multiple parities, they are separatelydistinguished. For example, in the case of Two Stages Coding Structure,Parity1 and Parity2 are additionally distinguished.

The term ‘common header information’ as used herein refers to a headerhaving an information field that is applied in common to a paritypayload, in the header information for a data payload. The common headerinformation includes information that makes it possible to determinewhether a received packet is a packet for a data payload or a packet fora parity payload. In addition, the information indicating whether FEC isapplied to the received FEC packet may be carried in the FEC packet, orcarried by a separate packet for control information, which is differentfrom the FEC packet. The common header information indicating whetherthe FEC is applied or not may indicate or mark application of FEC in thecommon header when a source payload is generated, i.e., before FECencoding, and then undergo FEC encoding. Alternatively, the commonheader information indicating whether the FEC is applied or not mayindicate non-application of FEC in the common header when a sourcepayload is generated, and then indicate application of FEC when an FECpacket for a source payload is generated by adding an FEC payload ID fora source payload to the source payload after FEC encoding. In the lattercase, recognizing that a received FEC packet for a source payload is anFEC-applied packet, a receiver may change the common header informationindicating whether the FEC is applied or not to indicate againnon-application of FEC, then generates an FEC packet for a sourcepayload, and then performs FEC decoding thereupon. As the common headeris placed in a fixed position, such as in front of or at the rear of theFEC packet, the receiver may determine whether a received FEC packet isa packet for a data payload or a packet for a parity payload.

Table 1 below illustrates, as an example of a common header of thepresent exemplary embodiments, FEC type information in an MMT packetheader which indicates whether FEC is applied, whether the receivedpacket is an FEC source packet, and whether the received packet is anFEC repair packet.

TABLE 1 value of FEC_type Value Description 0 MMT packet without AL-FECprotection 1 MMT packet with AL-FEC protection; FEC source packet 2 MMTpacket for repair symbol; FEC repair packet 3 Reserved for future use

In Table 1, FEC type=0 indicates an MMT packet to which FEC is notapplied. FEC type=1 indicates an MMT packet to which FEC is applied. FECtype=2 indicates an MMT packet for a parity payload, which is generatedafter FEC encoding.

For the data a sender is to transmit by applying FEC, the sendergenerates MMT packets, i.e., a source payload, whose FEC type is set as‘1’, then generates information payloads, and then performs FEC encodingthereupon to generate a parity payload. For the parity payload generatedby FEC encoding, an FEC packet for a parity payload is generated byadding an MMT header whose FEC type is set as ‘2’, an MMT payloadheader, and an FEC payload ID for a parity payload, and then the FECpacket for a parity payload, such as FEC parity packet 530, istransmitted together with the FEC packet for a source payload, such asthe FEC Source Packet 510. Based on the FEC type information in the MMTpacket header of received MMT packets, a receiver determines whether FECis applied to the received packet and whether the received packet is anFEC source packet or an FEC repair packet, and then performs FECdecoding on the FEC-applied FEC source packet and FEC repair packet,thereby recovering the packet that is lost during transmission of thepacket.

Alternatively, for the data the sender desires to transmit by applyingFEC, the sender generates MMT packets whose FEC type is set as ‘0’, thengenerates information payloads, and then performs FEC encoding thereuponto generate a parity payload. When generating an FEC source packet for asource payload by adding an FEC payload ID to the MMT packet afterperforming FEC encoding, the sender changes the FEC type in the MMTpacket header to ‘1’. In other words, in the case of an MMT packet towhich FEC is applied, the MMT packet is input to an FEC module after theFEC type is set as ‘0’, and in the case of an FEC packet for a sourcepayload after FEC encoding, the FEC type is set as ‘1’. For a paritypayload generated by FEC encoding, the sender generates an FEC packetfor a parity payload by adding an MMT header with FEC type=2, an MMTpayload header, and an FEC payload ID for a parity payload, to thegenerated parity payload, and then transmits it together with an FECpacket for a source payload. Based on the FEC type information in theMMT packet header of received MMT packets, the receiver determineswhether FEC is applied to the received packet and whether the receivedpacket is an FEC source packet or an FEC repair packet, then removes theFEC payload ID from the FEC source packet using the FEC-applied FECsource packet, which has the FEC type=1, and FEC repair packet, whichhas the FEC type=1, converts them into MMT packets for a source payloadby changing the FEC type to FEC type=0, and then performs FEC decodingon the parity payload of the FEC repair packet, thereby recovering thepacket that is lost during transmission of the packet.

The optional header 514 of the FEC source packet 510 is information thatis applied only to the source packet, and includes at least one offragmentation status information of the MPU and/or the MFU, headerlength information, and information indicating the identity of an assetrelated to data of the packet. Although this information may be an assetID in the present exemplary embodiments, it is preferable to increasethe transmission efficiency by transmitting compressed asset IDinformation that is mapped to the asset ID. In this case, the asset IDand the compressed asset ID information mapped thereto are transmittedin an out-of-band manner, such as via an out-of-band signal.

In the case of an FEC header, an FEC payload ID for a source packet andan FEC payload ID for a parity packet may be identical to or differentfrom each other, depending on the information block generation method,the FEC control information, and the FEC-related control informationarrangement method. FEC payload ID information includes at least one ofFEC flow information, FEC coding structure information, source packetcount information or the number of source packets, information payloadcount information, parity packet count information, a Packet SequenceNumber such as a Source/Parity Packet Sequence Number, orInformation/Parity Payload ID which is information indicating indexes ofinformation payloads and parity payloads in an FEC block, and BlockBoundary Info or Source Block Number.

In the MMT system illustrated in FIG. 2, when FEC is applied thereto,the FEC packet is input with the MMT D.2 Layer or an applicationprotocol such as RTP, as an output of the MMT D.1 Layer. However, if FECis not applied thereto, the FEC packet becomes a source payload and isan output of the MMT D.1 Layer since it does not require the FEC payloadID. Although not illustrated in FIG. 2, the FEC packet of the presentexemplary embodiments may include an FEC payload ID if FEC is appliedthereto, and the FEC packet is a source payload itself without the FECpayload ID if FEC is not applied thereto.

An MMT server transmits one or multiple MMT assets to an MMT client.Each asset is comprised of one or multiple MPUs, and each MPU ispacketized into one or multiple MMT Payload Formats (MMT-PFs) in the D.1Layer. An MMT Transport Packet (MMT-TP) is generated by adding a D.2header and is transferred to a lower layer. In a case havingtransmission of multiple MMT assets, a D.2 header of the MMT-TP for eachof the assets is transmitted by storing information, for example, anAsset_ID, for identifying each of the assets, indicating data of whichof the assets each of the transmission MMT-TPs carries. As multiple MMTassets being transmitted constitute one source flow for an individualMMT asset, one parity flow is generated and protected by FEC.Alternatively, as two or more assets constitute one source flow, oneparity flow is generated and protected by FEC. Some assets may beprotected by FEC while other assets may not be protected by FEC. Forexample, in the Two Stage FEC coding structure or Layer-Aware FEC codingstructure, two or more parity flows may be generated and protected inone source flow.

When protected by FEC, one source flow comprised of one or multiple MMTassets is transmitted after converting the parity payloads in the parityflow generated by FEC into MMT-TP, like the MMT asset, and each D.2header is transmitted by storing information, for example, the Asset ID,for identifying the parity payloads. For example, in the Two Stage FECor Layer-Aware (LA)-FEC coding structure, if two or more parity flowsare generated, each parity flow may be distinguished by a parity flowID. In this case, FEC flow IDs corresponding to the number oftransmission FEC flows are defined as FEC out-of-band signals, andmapping information for a source flow and a parity flow corresponding toeach FEC flow ID is provided.

For example, in a case where a video asset, an audio asset, a widgetasset, and a file asset are transmitted, if the video, audio and widgetassets are composed as one source flow and protected in the Two StageFEC coding structure, and if the file asset is composed as anothersource flow and protected in the One Stage FEC coding structure, then anFEC out-of-band signal carries the following information.

-   -   Video Asset: Asset ID=1    -   Audio Asset: Asset ID=2    -   Widget Asset: Asset ID=3    -   File Asset: Asset ID=4    -   Number of FEC Flows=2

▪FEC Flow ID=1

FEC coding structure: Two Stage FEC coding structure

Source Flow: Asset ID 1, 2, 3

Parity Flow1: Asset ID 101

Parity Flow2: Asset ID 102

▪FEC Flow ID=2

FEC coding structure: One Stage FEC coding structure

Source Flow: Asset ID 4

Parity Flow: Asset ID 103

In addition, by setting;

-   -   Asset ID=1 in an MMT TP Header carrying Video Asset,    -   Asset ID=2 in MMT TP Header carrying Audio Asset,    -   Asset ID=3 in MMT TP Header carrying Widget Asset,    -   Asset ID=101 in MMT TP Header carrying Parity Flow1,    -   Asset ID=102 in MMT TP Header carrying Parity Flow2,    -   Asset ID=4 in MMT TP Header carrying File Asset, and    -   Asset ID=103 in MMT TP Header carrying Parity Flow for    -   File Asset,

The receiver may smoothly perform FEC decoding by determining, based onthe FEC out-of-band signal and the Asset ID information in the MMT TPheader, that the Asset ID fields with values of 1, 2, 3, 101 and 102constitute one FEC flow and that the Asset ID fields with values of 4and 103 constitute another FEC flow.

FIG. 6 illustrates a structure of an FEC packet format in which a sourcepayload is an MMT transport packet, according to an exemplary embodimentof the present invention.

Referring to FIG. 6, an FEC source packet 610, of a source payload 620,is comprised of a D2 header 613 which consists of a common header 612and an optional header 614, a D1 payload format 616, and an FEC payloadID 618. An FEC parity packet 630 is comprised of a common header 632, anFEC payload ID 636, and a parity payload 638. In the common header 632,an ID field for distinguishing the assets is configured, and in the caseof a parity packet, an ID value for identifying the parity flow is set.The common header 632 may include a Global Sequence Number field, aDelivery Time Stamp field, and the like. Although not illustrated, inthe case of FIG. 6, for the FEC parity packet 630, the common header 632may be followed by an optional header. In other words, the D2 header 613of the FEC source packet may be the same as a D2 header of the FECparity packet (not shown), which includes the common header 632 and theoptional header. In this regard, since the MMT TP header performs afunction of a protocol, the network entity may drop the FEC paritypacket when it drops a packet depending on the congestion situation ofthe network. Therefore, the FEC parity packet may have the same headerstructure as that of the FEC source packet.

FIG. 7 illustrates a structure of an FEC packet format in which a sourcepayload is an MMT payload format, according to an exemplary embodimentof the present invention.

An FEC source packet 710, of a source payload 720, is comprised of anMMT TP header 712, a D1 header 713 which is consists of a common header714 and an optional header 716, a D1 payload 718, and an FEC payload ID720, and an FEC parity packet 730 is comprised of an MMT TP header 732,a common header 736, an FEC payload ID 738, and a parity payload 740. Inthis case, an Asset ID field of the MMT TP header 732 is prepared. Foran Asset ID field for the FEC source packet 710, an ID value foridentifying each of the assets is set. For an Asset ID field for the FECparity packet 730, an ID value for identifying a parity flow is set. Thecommon header 714 and 736 stores the same information as that in FIG. 5.

FIG. 8 is a block diagram illustrating a structure of a transmittingapparatus according to an exemplary embodiment of the present invention.

Referring to FIG. 8, an FEC control information generator 601 determineswhether FEC is applied or not, and generates FEC-related controlinformation if FEC is applied. A source payload generator 603 receives adata stream for transmission of an MMT asset from an upper encapsulationlayer, divides it into data payloads of a predetermined size, and adds acommon header and an optional header thereto, to generate a sourcepayload. Based on the FEC control information from the FEC controlinformation generator 601, the source payload generator 603 transfers,to an information block generator 605, a source block comprised of apredetermined number of source payloads from a sequence of sourcepayloads having the same FEC flow.

Based on the FEC control information, the information block generator605 generates an information block from the source block received fromthe source payload generator 603, and outputs the information block toan FEC encoder 607. Based on the input information block and the FECcontrol information, the FEC encoder 607 generates predetermined paritydata and inputs it to the source payload generator 603. Based on the FECcontrol information, the source payload generator 603 generates a paritypayload with the input parity data.

An FEC packet generator 609 generates an FEC parity packet by adding acommon header and an FEC header to the parity payload, generates an FECsource packet by adding an FEC header to the generated source payload,and outputs the final FEC packets to a transmitter 611. The transmitter611 transmits the FEC packets to the lower layer. If FEC is not applied,then the source payload generator 603 and the FEC packet generator 609generate a source payload based on the data stream and FEC controlinformation, and then transfer it to the transmitter 611 as an FECpacket. In the case of the MMT system illustrated in FIG. 2, the FECpacket is transferred with the MMT D.2 Layer or an application protocollike RTP.

Although not illustrated in the drawing, a controller divides a datastream into data payloads of a predetermined size and adds a header toeach of the data payloads to generate a source payload. The controlleradds a first FEC payload ID to the source payload and applies FECencoding thereto to generate an FEC source packet for a source payload.The controller adds a second FEC payload ID to at least one paritypayload and applies FEC encoding thereto to generate an FEC paritypacket for the at least one parity payload. The transmitter 611transmits the FEC source packet and the FEC parity packet.

FIG. 9 is a block diagram illustrating a structure of a receivingapparatus according to an exemplary embodiment of the present invention.

Referring to FIG. 9, an FEC packet receiver 701 receives a packetstream, then determines, based on a common header of a packet, whetherFEC is applied to the packet and whether the packet is a source packetor a parity packet, then acquires FEC-related control information froman FEC header of the source packet and an FEC header of the paritypacket if FEC is applied to the packet, and then transfers theFEC-related control information to an FEC controller 709. If there aremultiple FEC flows, the FEC controller 709 distinguishes flow-specificcontrol information and performs FEC decoding for each flow.

A source payload reconstructor 703 transfers, to a data stream unit,data of the packet, i.e., a source payload, to which FEC is not applied,from among the received FEC packets. If FEC is applied, then the sourcepayload reconstructor 703 distinguishes source payloads which are notreceived as source payloads received in packets having the same FECflow. If the source payload reconstructor 703 has received all of thesource payloads based on the FEC control information, then it outputsdata corresponding thereto.

Otherwise, the source payload reconstructor 703 outputs the receivedparity payloads from the FEC parity packet to an FEC block reconstructor705 together with the received source payloads. The FEC blockreconstructor 705 reconstructs an FEC block comprised of an informationblock and a parity block from the received source payloads and paritypayloads based on the FEC control information by erasing the lostpayloads, and outputs the reconstructed FEC block to an FEC decoder 707.

Based on the FEC control information received from the FEC controller709, the FEC decoder 707 recovers the lost information payloads byperforming FEC decoding, and outputs the recovered information payloadsto the FEC block reconstructor 705. Based on the FEC controlinformation, the FEC block reconstructor 705 recovers a source payloadfrom the recovered information payloads if necessary, using, forexample, the information payload reconstructed from the received sourcepayloads, and outputs the recovered source payload to the source payloadreconstructor 703. The source payload reconstructor 703 transfers dataof the recovered source payload and received source payloads to theupper layer.

In the exemplary embodiment of FIG. 9, the FEC controller 709distinguishes an in-band signal from an out-band signal in generatingFEC-related control information. The FEC controller 709 transmits thein-band signal in an FEC packet as an FEC header. In the case of the MMTsystem illustrated in FIG. 2, the FEC controller 709 transmits theout-band signal to a receiver by means of the C. Layer or a SessionDescription Protocol (SDP).

A controller, which may be any suitable type of hardware such as anIntegrated Circuit (IC) and which is not shown, determines whether apacket received from a sender is an FEC source packet and an FEC paritypacket, and acquires a source payload from the FEC source packet and aparity payload from the FEC parity packet. The source payload isgenerated by dividing a data stream into data payloads of apredetermined size, and adding a header to each of the data payloads.The FEC source packet is generated by adding a first FEC payload ID tothe source payload and applying an FEC code thereto. The FEC paritypacket is generated by adding a second FEC payload ID to the paritypayload and applying an FEC code thereto.

FIG. 10 illustrates an example of configuring an information block in anFEC block generator according to an exemplary embodiment of the presentinvention.

Referring to FIG. 10, upon receiving 8 source payloads SPL #0 to SPL #7,each having a variable packet size, the FEC block generator adds paddingdata so as to match the size of each payload to that of the payloadhaving the maxim length, for example, S_max, and then generates aninformation block comprised of 8 information payloads IPL#0 to IPL#7.Although it is assumed in the exemplary embodiment FIG. 10 that thelength of the information payload is set to match with the maximum sizeS_max of the source payload, the present invention is not limitedthereto, and the length of the information payload may be set to be lessthan S_max depending on the system complexity and memory requirements.

FIG. 11 illustrates an operation of configuring an information blockaccording to another exemplary embodiment of the present invention.

Referring to FIG. 11, upon receiving 6 source payloads SPL #0 to SPL #5,each having a variable packet size, the FEC packet generator arrangespayloads having different sizes in a row and divides them in the maximumlength, for example, S_max, of an information payload, to generate aninformation block comprised of 5 information payloads IPL#0 to IPL#4.The last information payload, IPL#4, may include padding data. In theexemplary embodiment of FIG. 11, since a boundary of a source block doesnot match with a boundary of an information payload, the informationrequired to extract a source payload from an information block, such asthe length of each payload, should be included in the information block,or should be delivered to a receiver in a separate way. Although it isassumed in the exemplary embodiment of FIG. 11 that the maximum lengthS_max of a source payload and the length of an information payload areset to be the same, a length of an information payload may be set to beless than S_max depending on the system complexity and memoryrequirements.

Referring to FIG. 8, the FEC encoder 607 calculates parity symbols fromthe input information block using a predetermined FEC encodingalgorithm, then generates a parity payload comprised of the paritysymbols, and then outputs the parity payload in the form of a parityblock.

FIG. 12 illustrates a process of mapping an information symbol in aninformation block when a Reed-Solomon (RS) code is used according to anexemplary embodiment of the present invention.

FIG. 13 illustrates a process of mapping an information symbol in aninformation block when a Low Density Parity Check (LDPC) code is usedaccording to an exemplary embodiment of the present invention.

Referring to FIGS. 12 and 13, if K, which is a number of informationbits, is less than or equal to 200, from an information block, then theFEC encoder maps a source block to the information block to generate aninformation symbol for RS coding as illustrated in FIG. 12, or the FECencoder may generate an information symbol for LDPC coding asillustrated in FIG. 13.

FIG. 14 illustrates a structure of a RS frame according to an exemplaryembodiment of the present invention.

FIG. 15 illustrates a structure of an LDPC frame according to anexemplary embodiment of the present invention.

Referring to FIGS. 14 and 15, a parity symbol is generated by performingRS and LDPC encoding on each information symbol, as illustrated in FIGS.14 and 15. In the case of FIG. 15, although shortening and puncturingare not illustrated, a parity symbol may be generated by performingshortening and puncturing for a variety of K information bits and Pparity bits using an LDPC code having a predetermined length. It will beapparent to those of ordinary skill in the art that only one ofshortening and puncturing may be performed selectively.

FIG. 16 illustrates parity block mapping for RS parity symbols accordingto an exemplary embodiment of the present invention.

FIG. 17 illustrates parity block mapping for LDPC parity symbolsaccording to an exemplary embodiment of the present invention.

Referring to FIGS. 16 and 17, an RS parity block and an LDPC parityblock are generated from the generated parity symbols, as illustrated inFIGS. 16 and 17. Next, RS and LDPC code specifications are illustrated.A primitive polynomial of an RS(N, K) code over the finite field GF(2̂8)is defined as p(x)=x̂8+x̂4+x̂3+x̂2+1. A symbol in GF(2̂8) may be representedas (â7, â6, â5, â4, â3, â2, a, 1), where a=00000010 in binary.

Each RS codeword rsc is an RS(240, 40) code over the finite fieldGF(2̂8), which is expressed as rsc=(e0, e1, . . . , e199, p200, . . . ,p239) when expressed as a vector. For the RS(240, 40) code, informationis 200 bytes and parity is 40 bytes. An LDPC (K+P, K) code over thefinite field GF(2) has a Quasi Cyclic (QC)-LDPC structure comprised of Kinformation bits and P parity bits, where K=L x 400, P=L×80, and L=1, 2,4, 8 or 16. In particular, a parity part of LDPC has an approximateshape of a triangular matrix, as illustrated in FIG. 18.

FIG. 18 illustrates a structure of an H matrix according to an exemplaryembodiment of the present invention, in which K=400, and P=L x 80 (L=1,2, 4, 8 or 16).

Referring to FIG. 18, although an RS code and an LDPC code have beenconsidered so far by way of example only, any other codes may beapplied, such as FEC codes such as Raptor, RaptorQ, XOR codes, or anyother similar and/or suitable codes. An FEC packet generation methodaccording to an exemplary embodiment of the present invention will bedescribed as follows.

The payload type of a common header of each packet is set to correspondto the payload during its transmission. In other words, the payload typeof a packet for a source payload indicates a source payload, and thepayload type of a packet for a repair payload indicates a repairpayload. A sequence number for source packets is sequentially granted.Similarly, a sequence number for repair packets is sequentially granted,but for the repair packets, a starting sequence number is set to startat a starting sequence number of, for example, a source packet so thatthe boundary of a repair block in the FEC block may be determined. Inother words, by setting the sequence numbers for source packets andrepair packets in an FEC block to have a correlation, the boundary ofrepair blocks or the boundary of a repair block, may be determined. Astarting sequence number of the FEC block is stored as FEC blockboundary information in the header of each packet. When FEC isoptionally applied, FEC flag information is also stored in the header.If the number of source packets or repair packets of the FEC block isvariable, information about the number of packets or the number ofsource packets and information about the number of source packets or thenumber of repair packets of the FEC block may also be stored in theheader.

In accordance with an exemplary embodiment of the present invention, asender may transmit content to which FEC is optionally applied, bysignaling or transmitting FEC configuration-related information or otherencoding configuration-related information to a receiver. In addition,the sender may optionally apply FEC depending on the network conditionsor content QoS. Further, by periodically repeatedly transmitting all orsome of FEC control information including FEC configuration-relatedinformation or other encoding configuration-related information, or bytransmitting all or some of FEC configuration-related information by theproposed in-band signaling method, the sender may provide the FECconfiguration-related information even to a new receiver in thesituation where the service is already in progress, so that the newreceiver may also recover the lost data by performing FEC decoding,making it possible to provide high-quality services to users.

If there is a plurality of data streams, i.e. source flows, output froman application layer, then it is preferable that the transmission systemstores information for distinguishing the multiple streams in an FECpacket, for example, FEC Flow ID information, and also stores the sameinformation even in an FEC packet for a stream or a parity flowcomprised of a parity payload, which is generated for FEC protection ofthe stream, during their transmission, thereby allowing the receiver todetermine the stream of parity payloads related to each of the multiplestreams.

Alternatively, if there is a plurality of data streams output from anapplication layer, then it is preferable that the transmission systemstores information for distinguishing each data stream and each paritypayload stream or a parity flow in an FEC packet, for example, a sourceflow ID and a parity flow ID, during its transmission, and thentransmits mapping information to the parity stream, for example, FECFlow ID 1=Source Flow ID 1+Parity Flow ID 1, generated for FECprotection of each data stream, as separate control information which isdifferent from the FEC packet.

As a result, a receiving apparatus may distinguish each data streambased on the stream identification information in the FEC packet or theseparate control information different from the FEC packet, and maydetermine the parity stream generated for FEC protection of each datastream, so that the receiving apparatus can smoothly perform FECdecoding.

As is apparent from the foregoing description, according to exemplaryembodiments of the present invention, a receiving apparatus may providehigh-quality services to users, and may easily distinguish an FEC packetby the FEC packet configuration method of the exemplary embodimentsdescribed above.

While the invention has been shown and described with reference tocertain exemplary embodiments thereof, it will be understood by thoseskilled in the art that various changes in form and details may be madetherein without departing from the spirit and scope of the invention asdefined by the appended claims and their equivalents.

What is claimed is:
 1. A method for transmitting a transmission packetin a communication system, the method comprising: generating a sourcepacket by adding a first payload identifier (ID) to an inputtransmission packet; generating a parity packet by encoding a sourceblock including the input transmission packet and adding a secondpayload ID to one or more repair symbols; and transmitting the sourcepacket and the parity packet as a transmission packet, wherein each ofthe source packet and the parity packet includes a transmission packetheader, wherein the transmission packet header includes type informationindicating if a forward error correction (FEC) encoding is applied tothe transmission packet, wherein the second payload ID includesinformation indicating a boundary of the source block.
 2. The method ofclaim 1, wherein the first payload ID includes a sequence numberidentifying source symbols included in the source block.